package tests

import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner
import org.scalatest.Suite
import cliente_empresa.Empresa
import comunicaciones.LlamadaLargaDistancia
import java.util.Date
import comunicaciones.LlamadaLocal
import planes.NumerosAmigos
import planes.PrepagoLocal
import planes.PrepagoInternacional
import planes.CiudadesAmigas
import cliente_empresa.Cliente
import planes.HablateTodo

@RunWith(classOf[JUnitRunner])
class TestEmpresa extends Suite{
  
  def testObtenerMejorCombinacionDePlanesDonDePlanes1Gana(){
    
      var call  = new LlamadaLargaDistancia(8888888,300,"Quilmes","Ezpeleta","Argentina")// Llamadas de Febrero
      call.fecha.setMonth(2)
      call.fecha.setDate(5)
      var call2 = new LlamadaLargaDistancia(1556194356,60,"Quilmes","Jiji","IslaFile")
      call2.fecha.setMonth(2)
      call2.fecha.setDate(2)
      var call3  = new LlamadaLocal(42576677,1800)
      call3.fecha.setMonth(3)
      call3.fecha.setDate(6)
      var call4 = new LlamadaLocal(42576677,1800)
      call4.fecha.setMonth(3)
      call4.fecha.setDate(7)
      
      var planA = new NumerosAmigos()
      planA.numeros = List(0606456,42576677,1556194356)
      var planH = new HablateTodo()
      var planL = new PrepagoLocal(2)
      var planI = new PrepagoInternacional(2)
      var planC = new CiudadesAmigas("Jiji")
      
      var planes1 = List(planH,planL,planA)
      var planes2 = List(planC,planI)
      
      var planes = List(planes1, planes2) 
      var client = new Cliente("",List(call,call2,call3,call4),List())
      var empresa = new Empresa(List(client))
      
      var planElegido = empresa.darMejorCombinacionDePlanes(client,planes,1,2,3)
      assert(planElegido == planes1)
  }
  
    
  def testObtenerMejorCombinacionDePlanesDonDePlanes2Gana(){
    
      var call  = new LlamadaLargaDistancia(8888888,60,"Quilmes","Ezpeleta","Argentina")// Llamadas de Febrero
      call.fecha.setMonth(2)
      call.fecha.setDate(1)
      var call2 = new LlamadaLargaDistancia(1556194356,300,"Quilmes","Jiji","IslaFile")
      call2.fecha.setMonth(2)
      call2.fecha.setDate(2)
      var call3  = new LlamadaLocal(42576677,1800)
      call3.fecha.setMonth(3)
      call3.fecha.setDate(3)
      var call4 = new LlamadaLocal(42576677,1800)
      call4.fecha.setMonth(3)
      call4.fecha.setDate(4)
      
      var planA = new NumerosAmigos()
      planA.numeros = List(0606456,42575677,1526194356)
      var planH = new HablateTodo()
      var planL = new PrepagoLocal(2)
      var planI = new PrepagoInternacional(2)
      var planC = new CiudadesAmigas("Jiji")
      
      var planes1 = List(planH,planL,planA)
      var planes2 = List(planC,planI)
      
      var planes = List(planes1, planes2) 
      var client = new Cliente("",List(call,call2,call3,call4),List())
      var empresa = new Empresa(List(client))
      
      var planElegido = empresa.darMejorCombinacionDePlanes(client,planes,1,2,3)
      assert(planElegido == planes1)
  }

}